package com.baidu.recognition.config.baidu;

import com.baidu.aip.speech.AipSpeech;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;

/**
 * @author liuzhiqiang
 */
@Configuration
public class BaiduConfig {

    @Value("${baidu.appId}")
    public static Integer appId;
    @Value("${baidu.apiKey}")
    public static String apiKey;
    @Value("${baidu.secretKey}")
    public static String secretKey;

    @Bean
    @Primary
    public AipSpeech aipSpeech() {
        AipSpeech client = new AipSpeech(String.valueOf(appId), apiKey, secretKey);
        // 可选：设置网络连接参数
        client.setConnectionTimeoutInMillis(2000);

        // 可选：设置代理服务器地址, http和socket二选一，或者均不设置
        // 设置http代理
//        client.setHttpProxy("172.16.190.63", 3000);

        // 可选：设置log4j日志输出格式，若不设置，则使用默认配置
        // 也可以直接通过jvm启动参数设置此环境变量
//        System.setProperty("aip.log4j.conf", "path/to/your/log4j.properties");
        return client;
    }


    @Bean("aipSpeechSocket")
    public AipSpeech aipSpeechSocket() {
        AipSpeech client = new AipSpeech(String.valueOf(appId), apiKey, secretKey);
        // 可选：设置网络连接参数
        client.setSocketTimeoutInMillis(60000);

        // 可选：设置代理服务器地址, http和socket二选一，或者均不设置
        // 设置socket代理
//        client.setSocketProxy("172.16.190.63", 3001);

        // 可选：设置log4j日志输出格式，若不设置，则使用默认配置
        // 也可以直接通过jvm启动参数设置此环境变量
//        System.setProperty("aip.log4j.conf", "path/to/your/log4j.properties");
        return client;
    }

    @Value("${baidu.appId}")
    public void setAppId(Integer appId) {
        BaiduConfig.appId = appId;
    }

    @Value("${baidu.apiKey}")
    public void setApiKey(String apiKey) {
        BaiduConfig.apiKey = apiKey;
    }

    @Value("${baidu.secretKey}")
    public void setSecretKey(String secretKey) {
        BaiduConfig.secretKey = secretKey;
    }
}
